package 注解;
/*
  测试注解：位置顺序不能乱，使用格式不能错，@Test测试需要先导包
 */
import org.junit.Test;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

public class Annotation {
  //测试注解
}
//注解的先后顺序：@Target元注解--> @Retention生命注解 --->@interface 自定义注解
//1.不要写在类里面;2.【@Target元注解】需要与【@interface自定义注解】一起使用！！！！否则报错
//3.不打分号结束; 4.自定义注解，里面是属性方法 ；5.
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})//
@Retention(RetentionPolicy.SOURCE)
@interface  T{
int age() default 0;

String value() default "name";
}
//测试注解的类====>采用@Test注解方法进行测试
//1.测试@Target元注解的位置。在类和变量上报错，只有方法没报错。报错原因：没有默认指定默认值；
//2.测试过程：该类必须放置在包里，才有效进行@Test测试；
//3.对@Test导包，添加Junit4：颜色从黑到黄添加成功

class TestAnno{
    String name;
    int age;
    @Test
    public  void eat (){
        System.out.println("好吃的");
    }
}

/*
    结论：1.自定义注解能够加在什么位置,取决于@Target注解的值
          2 .注解@Test可以存在多个位置
 */